Please enable JavaScript to view this website.

Skip to main content

Device Shadows

A device shadow is AWS IoT Core's persistent record of a device's last known state. Shadows exist even when the device is offline: software clients write desired state to a shadow, and the device reads and acts on it the next time it connects. The device writes its reported state back to the shadow, and software clients read it to get the last known device state without requiring a live connection.

CPP uses named shadows exclusively.

The shadow acts as a message store between the device and the cloud: apps write what they want the device to do, the device reads what it needs to do and reports back what it did. Neither side needs the other to be online at the same time.

The Four Named Shadows

When a device is provisioned, the platform creates four named shadows automatically. They exist before the device ever connects.

ShadowPurpose
identityDevice identity and metadata (product type, firmware version, etc.)
statusCurrent operational status of the device
configConfiguration parameters the device reads and applies
locationDevice location data
Shadow schemas are still being finalized

Full schemas for each shadow and their default values have not been fully defined yet. For now, a proposed shape for each shadow can be seen on the Shadows REST API.

Where to go next

Firmware engineers — implementing shadow read/write over MQTT on the device: see Firmware Guide.

Software engineers — reading or writing shadow state from apps or backend services: use the REST API. The shadow endpoints are documented there alongside request/response shapes and authentication.